package com.ruoyi.project.dataviewSystem.mapper;

import java.util.List;

import com.ruoyi.framework.aspectj.lang.annotation.DataSource;
import com.ruoyi.framework.aspectj.lang.enums.DataSourceType;
import com.ruoyi.project.dataviewSystem.domain.CDatavalue;
import org.apache.ibatis.annotations.Param;

/**
 * 历史数据Mapper接口
 *
 * @author wangshuo
 * @date 2021-01-07
 */
public interface CDatavalueMapper {
    /**
     * 查询历史数据
     *
     * @param id 历史数据ID
     * @return 历史数据
     */
    public CDatavalue selectCDatavalueById(Long id);

    /**
     * 查询历史数据列表
     *
     * @param cDatavalue 历史数据
     * @return 历史数据集合  ----------通过@DataSource(value = DataSourceType.SLAVE)切换数据源
     */
    @DataSource(value = DataSourceType.SLAVE)
    public List<CDatavalue> selectCDatavalueList(CDatavalue cDatavalue);

    /**
     * 新增历史数据
     *
     * @param cDatavalue 历史数据
     * @return 结果
     */
    public int insertCDatavalue(CDatavalue cDatavalue);

    /**
     * 修改历史数据
     *
     * @param cDatavalue 历史数据
     * @return 结果
     */
    public int updateCDatavalue(CDatavalue cDatavalue);

    /**
     * 删除历史数据
     *
     * @param id 历史数据ID
     * @return 结果
     */
    public int deleteCDatavalueById(Long id);

    /**
     * 批量删除历史数据
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteCDatavalueByIds(Long[] ids);

    @DataSource(value = DataSourceType.SLAVE)
    CDatavalue getLastDatavalueByDatacode(@Param("tableName") String tableName, @Param("datacode") String datacode);

    @DataSource(value = DataSourceType.SLAVE)
    List<CDatavalue> getDatavalueByDay(@Param("tableName") String tableName, @Param("datacode") String datacode, @Param("startTime") String startTime, @Param("endTime") String endTime);
}
